#ifndef __POUS_H
#define __POUS_H

#include "accessor.h"
#include "iec_std_lib.h"

// PROGRAM TEST_OPENPLC
// Data part
typedef struct {
  // PROGRAM Interface - IN, OUT, IN_OUT variables

  // PROGRAM private variables - TEMP, private and located variables
  __DECLARE_LOCATED(BOOL,INT1)
  __DECLARE_LOCATED(BOOL,INT2)
  __DECLARE_LOCATED(BOOL,INT3)
  __DECLARE_LOCATED(BOOL,INT4)
  __DECLARE_LOCATED(BOOL,INT5)
  __DECLARE_LOCATED(BOOL,INT6)
  __DECLARE_LOCATED(BOOL,INT7)
  __DECLARE_LOCATED(BOOL,INT8)
  __DECLARE_LOCATED(BOOL,OUT1)
  __DECLARE_LOCATED(BOOL,OUT2)
  __DECLARE_LOCATED(BOOL,OUT3)
  __DECLARE_LOCATED(BOOL,OUT4)
  __DECLARE_LOCATED(BOOL,OUT5)
  __DECLARE_LOCATED(BOOL,OUT6)
  __DECLARE_LOCATED(BOOL,OUT7)
  __DECLARE_LOCATED(BOOL,OUT8)
  __DECLARE_LOCATED(UINT,INTAN1)
  __DECLARE_LOCATED(UINT,INTAN2)
  __DECLARE_LOCATED(UINT,INTAN3)
  __DECLARE_LOCATED(UINT,INTAN4)
  __DECLARE_LOCATED(UINT,INTAN5)
  __DECLARE_LOCATED(UINT,INTAN6)
  __DECLARE_LOCATED(UINT,INTAN7)
  __DECLARE_LOCATED(UINT,INTAN8)
  __DECLARE_LOCATED(UINT,OUTAN1)
  __DECLARE_LOCATED(UINT,OUTAN2)
  __DECLARE_LOCATED(UINT,OUTAN3)
  __DECLARE_LOCATED(UINT,OUTAN4)
  __DECLARE_LOCATED(UINT,OUTAN5)
  __DECLARE_LOCATED(UINT,OUTAN6)
  __DECLARE_LOCATED(UINT,OUTAN7)
  __DECLARE_LOCATED(UINT,OUTAN8)
  __DECLARE_LOCATED(BOOL,MARCA1)
  __DECLARE_LOCATED(BOOL,MARCA2)
  __DECLARE_VAR(BOOL,GT51_OUT)
  __DECLARE_VAR(BOOL,GT56_OUT)
  __DECLARE_VAR(BOOL,GT57_OUT)
  __DECLARE_VAR(BOOL,GT62_OUT)

} TEST_OPENPLC;

void TEST_OPENPLC_init__(TEST_OPENPLC *data__, BOOL retain);
// Code part
void TEST_OPENPLC_body__(TEST_OPENPLC *data__);
#endif //__POUS_H
